Manual use of computer systems to prepare a software product for release to customers is well known in the art. Typically, each version of a software product is associated with a version number at the time of release that uniquely identifies the version as compared to a previous version. At a customer site, when replacing an old version of database with a new version, it is necessary to first export data that is currently contained in the old database, and then replace the database, and then import the data into the new database. Such data export and import is normally performed by use of scripts (a pre-programmed set of database instructions).
A script for export of data from a database may contain instructions to read the data currently held in several rows of a table in the old database. In addition to export of data, when versioning a database (replacing one version with another) it is also necessary to define the structure of each table in the old database so that an identical table can be recreated in the new database, before importing data into the new database. For example, the number of columns and the attributes of each column (such as length and scale), and the order in which the columns are present in a table define the structure of the table. Such information is called metadata, and may also contain the relationship of a column in the table to another column in the same table or in another table (such as a foreign key relationship).
Prior art which teaches deriving metadata from structures of objects within a database, for the purposes of creating a repository of information describing the database, includes U.S. Pat. No. 4,805,099 granted Val J. Huber. This patent is incorporated by reference herein in its entirety. Once metadata is prepared for any customer site, it can be used as often as necessary, during any number of versioning acts, as long as the database versions are compatible with one another. Any incompatibility between database versions can be resolved by a database manager manually changing the metadata for an existing database, e.g. to make the metadata work with a new version of the database.
U.S. Pat. No. 6,366,917 entitled “Method of modifying a populated database structure by modifying metadata describing the database structure” granted to St. John Herbert, III on Apr. 2, 2002 is incorporated by reference herein in its entirety. This patent describes modifying a database structure by first modifying metadata that describes the relevant database structure (e.g. by modifying a description of a database object characteristic in a metadata object). Thereafter, the relevant database structure is automatically modified to conform to the modified metadata. Everyone is requested to review this patent thoroughly, although one example is described next.
In an example described at column 7, lines 32-47 of U.S. Pat. No. 6,366,917, a database manager changes the format of all estimated delivery date columns within the database, by altering the type specification in a single “COLUMNS” object to reflect the long date format. On doing so, all records within a “TABLE_COLUMNS” object that specify the estimated date column, and that are accordingly dependent on the COLUMNS object include this updated information by reason of their dependencies. Then, objects are generated and/or updated in the database automatically, to reflect the modification. Similarly, a database manager could alter the length of the long date format from eight to nine characters in the metadata, and this change is propagated to all relevant objects within the database by reason of dependencies that exist within the metadata database.
A tool for creation and management of metadata is Oracle Warehouse Builder (OWB). OWB is an enterprise integration design tool that manages the full life cycle of metadata for the Oracle9i database. As such, the OWB tool has capabilities to deal with changes in the entire environment at a customer site, to allow effective maintenance of both metadata and data. OWB uses a language called OMB (Oracle MetaBase) to manipulate the metadata in an efficient way. OMB has a graphical user interface. Each of the following two documents is also incorporated by reference herein in its entirety. The first document is entitled “Oracle 9i XML Sample: Metadata Sample with the Oracle9i Metadata API” available on the internet at otn-oracle-com/tech/xml/xdk_sample/metadatasample.html. The second document is entitled “Oracle XML DB, An Oracle Technical White Paper” published January 2003, also incorporated by reference. This document is available on the Internet at otn-oracle-com/tech/xml/xmldb/pdf/XMLDB_Technical_Whitepaper.pdf.
An article entitled “Enhancing Productivity with Oracle9i Warehouse Builder Scripting,” published February 2003 describes, at pages 12-13 an example script to update all tables in a database with a set of columns for the creation date. Instead of using the graphical user interface and touching all tables, the article describes how to run a script. This article is also incorporated by reference herein in its entirety. Metadata definitions can also be changed during conversion of data from a database into XML by use of XSLT. For example, XSLT may be used to convert the metadata into a tree structure (based on DOM API), followed by application of template rules to transform the initial tree into a modified tree, followed by conversion of the modified tree into metadata. Presence of the just-described two trees in memory at the same time can be a significant burden, depending on the size of the tree. XSLT is described in Chapter 7 entitled “Transforming XML with XSLT” in a book by Steve Muench entitled “Building Oracle XML Applications” published September 2000, by O'Reilly, which is incorporated by reference herein in its entirety and is available on the Internet at www-oreilly-com/catalog/orxmlapp/chapter/ch07.html.